//
// Created by liuyu on 2024/6/9.
//

#include <stdint-gcc.h>
#include <stdbool.h>
#include <stm32f1xx_hal.h>
#include <tim.h>
#include "key.h"
#include "rgb.h"

#define RGB_VAL 500

/**
* @brief 按键事件检测--3s触发myExti中的定时器回调，然后会调用到该函数
* @param name
* @param value
* @return
* @retval
* @bug
*/
void keyEvent(void)
{
    static bool flag=true;
    if (flag){
        setRGBColor(RGB_VAL,RGB_VAL,RGB_VAL);
    } else{
        setRGBColor(0,0,0);
    }
    flag=!flag;
    HAL_TIM_Base_Stop_IT(&htim4);
}

/**
* @brief 按键中断--有按键事件触发时，且是触发的才会开启tim4，否则有其他按键中断会关闭tim4
* @param name
* @param value
* @return
* @retval
* @bug
*/
void keyProcess(void)
{
    //按键按下，下降沿触发
    if (HAL_GPIO_ReadPin(KEY_GPIO_Port,KEY_Pin)==0)
    {
        __HAL_TIM_CLEAR_FLAG(&htim4, TIM_SR_UIF);
        htim4.Instance->CNT=0;
        HAL_TIM_Base_Start_IT(&htim4);
    } else{
        HAL_TIM_Base_Stop_IT(&htim4);
    }
}

